import CONFIG from './config.js'

const install = (Vue, vm) => {

	// 自定义配置参数
		Vue.prototype.$u.http.setConfig({
			baseUrl: CONFIG.baseUrl,
			method: 'POST',
			dataType: 'json', // 设置为json，返回后会对数据进行一次JSON.parse()
			showLoading: true, // 是否显示请求中的loading
			loadingText: '请求中...', // 请求loading中的文字提示
			loadingTime: 800, // 在此时间内，请求还没回来的话，就显示加载中动画，单位ms
			originalData: false, // 是否在拦截器中返回服务端的原始数据
			loadingMask: true, // 展示loading的时候，是否给一个透明的蒙层，防止触摸穿透
			// 设置自定义头部content-type
			// header: {
			// 	'content-type': 'xxx'
			// }
			header:{
				'X-Requested-With':'XMLHttpRequest'
			}
		})
		
		// 请求拦截
		Vue.prototype.$u.http.interceptor.request = (config) => {
			const token = uni.getStorageSync('token') || '';
			config.header.token = token;
			
			return config
			
		}
		
		// 响应拦截
		Vue.prototype.$u.http.interceptor.response = (res) => {
			if(res.code == 1) {
				return res;
			} else if(res.code == 401) {
				uni.removeStorageSync('token');
				uni.switchTab({
					url: '/pages/user/index/index'
				})
				return false;
			} else if (res.code == 0) {
				return res;
			} else {
				// 如果返回false，则会调用Promise的reject回调，
				// 并将进入this.$u.post(url).then().catch(res=>{})的catch回调中，res为服务端的返回值
				return false;
			}
		}
	
}

export default {
	install
}